The invention relates to a method of identifying a selected music track on a compact disk, and synchronizing music data stored in a computer memory to the identified track.
Audio information is recorded on an audio compact disk (CD) as digital data. Data representing different audio passages, such as songs, are recorded on sequential music tracks. Two copies of a given CD, which to all outward appearances are identical, may in fact not contain exactly the same data. A given music track on a CD may not be the same as a corresponding music track on the supposedly identical CD. The difference is related to the manner in which audio CDs are produced, which is fundamentally different from the method by which other types of digital data are recorded on CDs, such as, for example, computer software recorded on CD-ROMs.
To produce, for example, a software title on a CD-ROM, the developer first makes one or more "golden master" CDs, which are made in exactly the same way, using the same data, and are thus identical. The golden masters are sent to one or more CD production facilities. The production facilities make exact copies of the golden masters and use them as masters to produce the final CD-ROM. Nothing in the entire production process, from golden master to final product, changes any of the data, so each CD-ROM is an exact copy of the original golden master used to make it.
By contrast, most popular music is first recorded on multi-track analog tape machines. The multi-track analog master is mixed down to a two-track stereo tape, which may be analog or digital. Eventually, two-track digital master tapes are made, which, due to the large production volumes required for popular CDs, are sent simultaneously to several CD mastering facilities. As part of another transfer process a recording engineer at each mastering facility adds subcode data, which specify the start and end point of each CD track. The digital master tape with audio data and subcode data is used to make a disk master, which is then used to produce the CD.
There is no standard that governs when one track ends and the next one starts. The recording engineer uses his or her judgment to make that determination when adding the subcodes. For example, one engineer might place the "start of song" subcode 100 msec before the beginning of a track, while a different engineer might place the start of song subcode 300 msec before the track begins. Therefore, it is almost certain that the track timings of CDs produced at different facilities will be different.
A second type of timing variation between ostensibly the same music track on different CDs is caused by remastering. Improvements in digital recording and processing have made it possible to produce better-sounding CDs from the original analog masters, and so popular CDs are often re-released using new masters. Sometimes a sticker on the CD package will identify a newly remastered title, but usually there is no change in packaging. And, whenever a new digital master is made from analog sources, variations can be expected. For example, the playback speed of different analog tapes will probably be slightly different, which will cause one or more tracks to be "compressed" or "stretched" in time compared with the original master. This phenomenon we call "time warping."Foreign releases of some CDs can vary even more than their domestic versions. Record companies sometime send analog master tapes to their overseas manufacturers instead of the more accurate digital master. Thus, foreign release CDs may be subject to both time warping (because the analog master tapes will be played back on different machines) and subcode shift (because their own recording engineers will be adding the subcodes).
In extreme cases, a re-released CD may be substantially different from the original. The tracks may have been edited to clean up audio glitches, bonus tracks may be added in between tracks from the original release, or the running order of tracks may be changed. Also, variations may occur between copies of the same title on different labels when a recording artist changes label affiliation and reassigns the back catalog, or between the conventional and high-end versions of a CD title, such as, for example, gold discs produced by Mobile Fidelity and DCC.
In everyday use, timing variations, such as subcode shift, between one CD and another is not a problem because the subcodes are only used to provide the track number and an elapsed time display on the CD player and to program the order of song play on the CD player. However, a subcode shift can present problems in other uses. An interactive computer music game, such as "Quest For Fame Featuring AEROSMITH," produced by Virtual Music Entertainment, Inc. of Andover, Mass., requires synchronization of the audio playback of two different music tracks. The first track is a music track, or music score, taken from a recording, such as, for example, a music track taken from a CD-ROM. The second track is digital music data stored in a music data file in computer memory (music data). The music data represents a score consisting of a series of notes or chords. Each note or chord is associated with a time that corresponds with a selected time in the musical track. After selecting a music track, the user "plays along" with the audio playback of the music track by actuating an input device, such as, for example, a virtual music instrument. When actuated, the input device sends a signal to the computer, which responds by playing the appropriate note or chord from the music data. The computer knows which note or chord to play at a particular time because the music data is synchronized with the playback of the music track. U.S. Pat. No. 5,491,297, to Johnson et al., incorporated herein by reference, describes such a system in greater detail. Synchronizing the music track with the music data is simple where the music data file is derived from a particular CD music track that is also stored in the computer and played back from the computer.
If a user could use their own audio CD collection to provide music tracks for game play, more space would be available on the game disk for additional music data files. However, timing variations can arise where the user plays back the music track from his or her own CD collection, rather than from a CD music track stored in the computer.
Synchronizing music data with a music track on a user CD requires knowing the exact length of time between the start of song subcode marker on the user CD and the actual start of the music track. A subcode shift of even a few milliseconds can be crucial. If the music data stored in computer memory was derived from a reference CD that was produced differently from the user CD in the CD player, the tracks will not be synchronized.
Time warping, like subcode shifting, can make synchronizing audio tracks digitally recorded on different media difficult. Music data in computer memory that is timed and synchronized with the original master release will not synchronize correctly with a new release of the music track that is running faster or slower than the original. At the start of a track everything will be synchronized, but as the music progresses the two recordings will get more and more out of sync.
One solution would be to include in the game program a music data track corresponding to each differently produced version of a CD. However, differently produced or remastered disks are usually indistinguishable from one another. It is impossible to tell who manufactured the disk by looking at the part number or anything on the cover. A remastered re-release usually looks identical to the original release. And, even if it were possible to tell these disks apart, it would be logistically difficult for a game producer to support them all. The cost in time and manpower required to track all of the original differences and re-releases, obtain all of the different CDs, and resynchronize the data, would be prohibitive.
When playing an audio CD, most personal computer CD-ROM drives can be controlled by a programming interface that provides only three relevant pieces of information about the CD in the player: the total number of tracks, the length of each track, and how far into the track you are at any given time while you are playing a CD. "CD player" programs that run on a Macintosh.RTM., Microsoft Windows or MS/DOS type system get the information for their displays in this way. The information comes from the subcodes on the CD. If all CDs of a given title were the same, the subcodes would provide sufficient information to allow programmers to synchronize music data stored in computer memory with a CD music track, but the disc-to-disc variations described above make this impossible.
One approach is to provide settings that can be set manually to compensate for offsets in the songs on audio CDs. It can be difficult to manually adjust for complicated timing variations, and improperly adjusting the settings can make timing problems worse.